package com.haidong.config;

import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;

/**
 * 这个类是springmvc提供的专门对接服务器的的,只需要继承然后重写方法即可
 * 写法复杂,下面有更简单的写法,换个继承类
 */
//public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
//    // 加载springmvc的配置类
//    @Override
//    protected WebApplicationContext createServletApplicationContext() {
//        // 初始化WebApplicationContext对象
//        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
//        // 加载指定配置类,提示tomcat运行时要加载spring的这些配置
//        ctx.register(SpringMvcConfig.class);
//        return ctx;
//    }
//
//    // 设置由springmvc控制器处理的请求映射路径
//    // 设置拦截器拦截全部请求给spring框架处理
//    @Override
//    protected String[] getServletMappings() {
//        return new String[]{"/"};
//    }
//
//    // 加载spring配置类
//    @Override
//    protected WebApplicationContext createRootApplicationContext() {
//        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
//        ctx.register(SpringConfig.class);
//        return ctx;
//    }
//}
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    // post乱码处理
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }
}
